const express = require('express');
const router = express.Router();
const { parseFilesByParams, parseScoreByPositionCode } = require('../utils/fileParser');

// 职位查询 - 根据参数查询特定数据
router.get('/parse', async (req, res) => {
  try {
    const { province, city, date } = req.query;
    
    // 验证参数 - 三个主要参数必须提供
    if (!province || !city || !date) {
      return res.status(400).json({ 
        error: '必须提供所有参数: province, city, date',
        example: '/files/parse?province=安徽&city=合肥&date=2025'
      });
    }
    
    // 调用文件解析工具
    const result = await parseFilesByParams(province, city, date);
    
    res.json(result);
  } catch (error) {
    console.error('解析数据时出错:', error);
    
    // 根据错误类型返回不同的状态码
    if (error.message.includes('不存在')) {
      res.status(404).json({ error: error.message });
    } else {
      res.status(500).json({ error: error.message });
    }
  }
});

// 分数查询 - 根据职位代码查询分数数据
router.get('/parseScore', async (req, res) => {
  try {
    const { province, city, date, positionCode } = req.query;
    
    // 验证参数 - 四个参数都必须提供
    if (!province || !city || !date || !positionCode) {
      return res.status(400).json({ 
        error: '必须提供所有参数: province, city, date, positionCode',
        example: '/files/parseScore?province=安徽&city=合肥&date=2025&positionCode=040001'
      });
    }
    
    // 调用分数解析工具
    const result = await parseScoreByPositionCode(province, city, date, positionCode);
    
    res.json(result);
  } catch (error) {
    console.error('解析分数数据时出错:', error);
    
    // 根据错误类型返回不同的状态码
    if (error.message.includes('不存在')) {
      res.status(404).json({ error: error.message });
    } else {
      res.status(500).json({ error: error.message });
    }
  }
});

module.exports = router;